The storage of high resolution digital images within a digital still camera system typically requires substantial memory. For a single sensor camera, a typical image with a resolution of 768 pixels per line .times.512 lines .times.10 bits per pixel would require 3,932,160 bits or, equivalently, 491,520 bytes of semiconductor memory storage space. If, for system requirements, each 10 bit pixel value must be stored in a 16 bit word of memory (wasting 6 bits per word), the required amount of memory to store the entire image increases to 786,432 bytes. If the data could be transformed in some reversible manner to require only 8 bits (1 byte) per pixel, without significantly degrading image quality, then only 393,216 bytes of memory are required for a 50% savings of storage memory.
Logarithm transforms have been used in the past to transform ten bit pixel values into eight bit pixel values. Typically one would use an expression such as Equation 1 to map 10 bit linear exposure data into 8 bit logarithmic exposure data. ##EQU1##
In Equation 1,"x" is the 10 bit linear exposure value, "y" is the corresponding 8 bit logarithmic value and "round" rounds the result to the nearest integer. Equation 1 can be inverted to produce Equation 2 for transforming a 8 bit logarithmic value to a ten bit linear exposure value. ##EQU2##
Although the presently known and utilized method for data transformation is satisfactory, it is not without drawbacks. The present digital compression does not account for the scene contents of the image so that details in high contrast areas may be lost if the code values in this area are quantized to a narrow range of output code values.
Consequently, a need exists for a method and apparatus for the compression of imaging data for overcoming the above-described drawbacks.